SO_OBJECTS=

# 2.3 Fortran implementatie
SO_OBJECTS+=imageconvolution_fortran.so
imageconvolution_fortran.so: imageconvolution_fortran.pyf imageconvolution_fortran.f95
	f2py -c --fcompiler=gnu95 -m imageconvolution_fortran --f90flags="-fbounds-check -Wall -O0" --noopt $^

# 2.4 C implementatie
# (Haal de volgende toekenning uit commentaar om met make all ook de C-implementatie te compileren)
SO_OBJECTS+=imageconvolution_c.so
imageconvolution_c.so: imageconvolution_c.pyf imageconvolution_c.c
	export CFLAGS="-Wall -O0" ; f2py -c -m imageconvolution_c --noopt $^

# 2.5 Geoptimaliseerde implementaties
# (Haal de volgende toekenning uit commentaar om met make all ook de geoptimaliseerde versies te compileren)
SO_OBJECTS+=imageconvolution_fortran_opt.so imageconvolution_c_opt.so
imageconvolution_fortran_opt.so: imageconvolution_fortran_opt.pyf imageconvolution_fortran.f95
	f2py -c --fcompiler=gnu95 -m imageconvolution_fortran_opt --f90flags="-O4" $^
imageconvolution_c_opt.so: imageconvolution_c_opt.pyf imageconvolution_c.c
	export CFLAGS="-O4" ; f2py -c -m imageconvolution_c_opt $^

all: $(SO_OBJECTS)

veryclean:
	$(RM) $(SO_OBJECTS) driver.pyc
